/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * FrmVentanaPrincipal.java
 *
 * Created on May 15, 2011, 1:19:46 PM
 */
package sysprojectmg.gui;

import java.awt.BorderLayout;
import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JPanel;
import sysprojectmg.proyecto.be.BeanProyecto;
import sysprojectmg.proyecto.biz.ControladorProyecto;
import java.util.ArrayList;
import sysprojectmg.horasproduccion.gui.PanelListaProyectos;
import sysprojectmg.horasproduccion.be.BeanMiembro;
import sysprojectmg.proyecto.biz.ControladorMiembrosProyecto;
import sysprojectmg.proyecto.gui.PanelMiembrosProyecto;
import sysprojectmg.proyecto.gui.PanelProyecto;
import sysprojectmg.utiles.SntpClient;

/**
 *
 * @author luxOn
 */
public final class FrmVentanaPrincipal extends javax.swing.JFrame {

    private int idUsuario;
    private int idRol = 1;
    private int codigoSemana = 0;
    private int estado = 1;
    private ArrayList<BeanProyecto> listaProyectos;
    private ArrayList<BeanMiembro> listaMiembros;
    private PanelListaProyectos panelListaProy;
    private PanelProyecto panelProyecto;
    private PanelMiembrosProyecto panelMiembrosProyecto;
    ControladorProyecto controladorProy = new ControladorProyecto();
    ControladorMiembrosProyecto controladorMProy = new ControladorMiembrosProyecto();
    SntpClient sntClient = null;

    public int getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(int idUsuario) {
        this.idUsuario = idUsuario;
    }

    /** Creates new form FrmVentanaPrincipal */
    public FrmVentanaPrincipal() throws SQLException {
        initComponents();
        PanelLogo pnlLogo = new PanelLogo();
        this.listaMiembros = controladorMProy.obtenerMiembros(estado);
        this.CambiarPanel(pnlLogo);
    }

    public void CambiarPanel(JPanel objPanel) {
        panelPrincipal.removeAll();
        panelPrincipal.add(objPanel, BorderLayout.CENTER);
        this.pack();
    }

    //aun no esta implementado, no se llama a este constructor aun
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLayeredPane1 = new javax.swing.JLayeredPane();
        jPanel1 = new javax.swing.JPanel();
        panelPrincipal = new javax.swing.JPanel();
        mnbBarraPrincipal = new javax.swing.JMenuBar();
        mnuProyecto = new javax.swing.JMenu();
        mnuMantenerProyecto = new javax.swing.JMenuItem();
        mnuHorasProduccion = new javax.swing.JMenuItem();
        mnuSeguridad = new javax.swing.JMenu();
        mnuMantenerPerfil = new javax.swing.JMenuItem();
        jMenuItem1 = new javax.swing.JMenuItem();
        mnuMantenerUsuario = new javax.swing.JMenuItem();
        mnuParticipantesAceptados = new javax.swing.JMenu();
        mnuLogAuditoria = new javax.swing.JMenuItem();
        jMenuItem5 = new javax.swing.JMenuItem();
        mHerramientas = new javax.swing.JMenu();
        mnuSalir = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });
        getContentPane().add(panelPrincipal, java.awt.BorderLayout.CENTER);

        mnuProyecto.setText("Proyecto");

        mnuMantenerProyecto.setText("Mantener Proyecto");
        mnuMantenerProyecto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnuMantenerProyectoActionPerformed(evt);
            }
        });
        mnuProyecto.add(mnuMantenerProyecto);

        mnuHorasProduccion.setMnemonic('h');
        mnuHorasProduccion.setText("Horas de Producción");
        mnuHorasProduccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnuHorasProduccionActionPerformed(evt);
            }
        });
        mnuProyecto.add(mnuHorasProduccion);

        mnbBarraPrincipal.add(mnuProyecto);

        mnuSeguridad.setText("Seguridad");
        mnuSeguridad.setEnabled(false);

        mnuMantenerPerfil.setText("Mantener Perfil");
        mnuSeguridad.add(mnuMantenerPerfil);

        jMenuItem1.setText("Mantener Miembro");
        mnuSeguridad.add(jMenuItem1);

        mnuMantenerUsuario.setText("Mantener Usuario");
        mnuSeguridad.add(mnuMantenerUsuario);

        mnbBarraPrincipal.add(mnuSeguridad);

        mnuParticipantesAceptados.setText("Reportes");
        mnuParticipantesAceptados.setEnabled(false);

        mnuLogAuditoria.setText("Matriz de Priorización");
        mnuParticipantesAceptados.add(mnuLogAuditoria);

        jMenuItem5.setText("Generador de Reportes");
        mnuParticipantesAceptados.add(jMenuItem5);

        mnbBarraPrincipal.add(mnuParticipantesAceptados);

        mHerramientas.setText("Herramientas");
        mHerramientas.setEnabled(false);
        mnbBarraPrincipal.add(mHerramientas);

        mnuSalir.setText("Salir");
        mnuSalir.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                mnuSalirMouseClicked(evt);
            }
        });
        mnbBarraPrincipal.add(mnuSalir);

        setJMenuBar(mnbBarraPrincipal);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void mnuHorasProduccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuHorasProduccionActionPerformed

        // TODO add your handling code here:
        panelListaProy = new PanelListaProyectos(this, this.codigoSemana, this.listaProyectos, this.listaMiembros);
        this.CambiarPanel(panelListaProy);
    }//GEN-LAST:event_mnuHorasProduccionActionPerformed

    private void mnuSalirMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_mnuSalirMouseClicked
        // TODO add your handling code here:
        System.exit(0);
    }//GEN-LAST:event_mnuSalirMouseClicked

    private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened
        try {
            // TODO add your handling code here:
            //cargo los datos que seran usados
            sntClient = new SntpClient();
            try {
                this.codigoSemana = sntClient.obtenerSemanaActual();

                int anio = sntClient.obtenerAnioActual();
                //pasar a codigoSemana de la tabla semana_anio
                this.codigoSemana = this.codigoSemana + anio * 100;
            } catch (ParseException ex) {
                Logger.getLogger(FrmVentanaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
            }


            System.out.println(this.codigoSemana);
            try {
                System.out.println("nuevooooo " + sntClient.obtenerSemanaByFecha("2011-12-01"));
            } catch (ParseException ex) {
                Logger.getLogger(FrmVentanaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
            }
            try {
                this.listaProyectos = controladorProy.obtenerListaProyectos(this.idUsuario, this.idRol, this.codigoSemana);
            } catch (SQLException ex) {
                Logger.getLogger(FrmVentanaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
            }

        } catch (IOException ex) {
            Logger.getLogger(FrmVentanaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
        }

    }//GEN-LAST:event_formWindowOpened

    private void mnuMantenerProyectoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuMantenerProyectoActionPerformed
        try {
            panelProyecto = new PanelProyecto(this, listaMiembros);
        } catch (SQLException ex) {
            Logger.getLogger(FrmVentanaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
        }
        this.CambiarPanel(panelProyecto);
    }//GEN-LAST:event_mnuMantenerProyectoActionPerformed
    /**
     * @param args the command line arguments
     */
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLayeredPane jLayeredPane1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JMenu mHerramientas;
    private javax.swing.JMenuBar mnbBarraPrincipal;
    private javax.swing.JMenuItem mnuHorasProduccion;
    private javax.swing.JMenuItem mnuLogAuditoria;
    private javax.swing.JMenuItem mnuMantenerPerfil;
    private javax.swing.JMenuItem mnuMantenerProyecto;
    private javax.swing.JMenuItem mnuMantenerUsuario;
    private javax.swing.JMenu mnuParticipantesAceptados;
    private javax.swing.JMenu mnuProyecto;
    private javax.swing.JMenu mnuSalir;
    private javax.swing.JMenu mnuSeguridad;
    private javax.swing.JPanel panelPrincipal;
    // End of variables declaration//GEN-END:variables

    private void lockControles() {
        this.mnuMantenerUsuario.setEnabled(false);
        this.mnuMantenerPerfil.setEnabled(false);
        this.mnuLogAuditoria.setEnabled(false);
    }
}
